package ga.inicializacao;

import ga.base.Individuo;
import ga.base.Inicializacao;

import java.util.List;

import problema.Problema;
import problema.Solucao;

public class InicializacaoNormalizada implements Inicializacao {

	@Override
	public void executar(int tamanhoPop, List<Solucao> populacao, Problema problema) {
		double[] menorValor = problema.getValorMinimo();
		double[] maiorValor = problema.getValorMaximo();

		for (int i = 0; i < tamanhoPop; i++) {
		
			double[] gene = new double[problema.getNumeroDimensoes()];
			for(int currentDim=0; currentDim<gene.length; currentDim++){
				gene[currentDim] = menorValor[currentDim] + 
						((maiorValor[currentDim]-menorValor[currentDim]) * Math.random());
			}
			
			populacao.add(new Individuo(gene));
		}

	}

}
